//package com.own.compoent.mq.rabbit.producer.config;
//
//import org.springframework.amqp.core.Binding;
//import org.springframework.amqp.core.BindingBuilder;
//import org.springframework.amqp.core.HeadersExchange;
//import org.springframework.amqp.core.Queue;
//import org.springframework.boot.SpringBootConfiguration;
//import org.springframework.context.annotation.Bean;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * HeaderConfig
// *
// * @author chenxueli
// * @date 2023-07-24 14:49:00
// */
//@SpringBootConfiguration
//public class HeaderConfig {
//
//    @Bean
//    public Queue headQueueTxTyp1() {
//        return new Queue("txTyp1");
//    }
//
//    @Bean
//    public Queue headQueueBusTyp1() {
//        return new Queue("busTyp1");
//    }
//
//    @Bean
//    public Queue headQueueTxBusTyp() {
//        return new Queue("txbusTyp1");
//    }
//
//    /**
//     * 声明exchange
//     *
//     * @return HeadersExchange
//     */
//    @Bean
//    public HeadersExchange setHeaderExchange() {
//        return new HeadersExchange("headerExchange");
//    }
//
//    /**
//     * 声明Binding
//     * 绑定header中txtyp=1的队列。header的队列匹配可以用mathces和exisits
//     *
//     * @return Binding
//     */
//    @Bean
//    public Binding bindHeaderTxTyp1() {
//        return BindingBuilder.bind(headQueueTxTyp1()).to(setHeaderExchange()).where("txTyp").matches("1");
//    }
//
//    /**
//     * 绑定Header中busTyp=1的队列。
//     *
//     * @return Binding
//     */
//    @Bean
//    public Binding bindHeaderBusTyp1() {
//        return BindingBuilder.bind(headQueueBusTyp1()).to(setHeaderExchange()).where("busTyp").matches("1");
//    }
//
//    /**
//     * 绑定Header中txtyp=1或者busTyp=1的队列。
//     *
//     * @return Binding
//     */
//    @Bean
//    public Binding bindHeaderTxBusTyp1() {
//        Map<String, Object> condMap = new HashMap<>();
//        condMap.put("txTyp", "1");
//        condMap.put("busTyp", "1");
//        return BindingBuilder.bind(headQueueTxBusTyp()).to(setHeaderExchange()).whereAny(condMap).match();
//    }
//
//}
